<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>javascript继承</title>
	<script>
		//继承 : 子类不影响父类，子类可以继承父类的一些功能 ( 代码复用 )

		function person(name, sex, age) {
			this.name = name;
			this.sex = sex;
			this.age = age;
		}

		person.prototype.printMsg = function () {
			console.log(this.name + " " + this.sex + " " + "今年：" + this.age + "岁");
		};
		var p1 = new person('小明', '男', 22);
		p1.printMsg();

		//属性的继承 : 调用父类的构造函数 call
		function superMan(name, sex, age, job) {
			person.call(this, name, sex, age);
			this.job = job;
		}

		//		superMan.prototype = person.prototype;//此时他们在内存里边的引用地址相同，其中一个改变会影响到另一个（子类影响父类）

		//方法的继承 : for in :  拷贝继承 (jquery也是采用拷贝继承extend)
		extend(superMan.prototype, person.prototype);
		var aoteman = new superMan("奥特曼", "男", "28", "打怪升级");
		aoteman.printMsg();


		function extend(obj1, obj2) {
			for (var attr in obj2) {
				obj1[attr] = obj2[attr];
			}
		}
	</script>
</head>
<body>
<h1>
	javascript继承
	<h2>继承 : 子类不影响父类，子类可以继承父类的一些功能 ( 代码复用 )</h2>
</h1>
</body>
</html>